#ifndef __SEGMENT_H__
#define __SEGMENT_H__


#include "Shape.h"
#include "Stage.h"



class Segment : public Shape {

	private:
		Point* inicio;  
		Point* fin;
	    SDLDrawManager manager;
	    Uint8  r,g,b;

        SDLDrawElement e;
	 
	public:
		Segment(); // Constructor.
		virtual ~Segment(); // Destructor.

		int serialize(Element* elem);

		void hydrate(Element* elem);

		// GET y SET para cada atributo.
	    void setInicio(Point* point);
		Point* getInicio();

		void setFin(Point* point);
		Point* getFin();

		void setSegmentPoints(Point firstPoint,Point lastPoint);
		
		void setSegmentColor(Uint8  R, Uint8  G, Uint8  B);
		
		void draw(SDL_Surface *screen);
		
		void drawTexture(SDL_Surface *screen, int thickness);
		void fillThickness(SDL_Surface *screen, int thickness);

		
		void collide(Shape* shape, Point* puntoChoque);

		void update();



};


#endif __SEGMENT_H__